/**
 * Created by Administrator on 2016/7/13.
 */
//引一下支持mysql的orm  sequelize模块
var Sequelize = require('sequelize');

//连接数据库及信息
var sequelize = new Sequelize(
    'tp_ccdt', // 数据库名
    'meet',   // 用户名
    'meet',   // 用户密码
    {
        'dialect': 'mysql',  // 数据库使用mysql
        'host': '115.28.21.49', // 数据库服务器ip
        'port': 3306,        // 数据库服务器端口
        'define': {
            // 字段以下划线（_）来分割（默认是驼峰命名风格）
            'underscored': true
        }
    }
);
/**
//建立省表的模块，sequelize的增删改查都是基于该模块的
var provinceModule=sequelize.define(
    'Province',
    {
        'id':{//与数据库表字段对应的模块字段
            'field':'id',//数据库表的字段
            'type': Sequelize.STRING(50), 'primaryKey': true,
            'allowNull': false,
            'unique': true
        },
        'provinceName':{
            'field':'province_name',
            'type': Sequelize.STRING(100),
            'allowNull': true
        },
        'createTime':{
            'field':'create_time',
            'type': Sequelize.STRING(20),
            'allowNull': true
        }
    },
    {
        'freezeTableName': true,// 默认false修改表名为复数，true不修改表名，与数据库表名同步
        'tableName': 'province',
        timestamps: false,//时间戳为false是不需要下面的自动生成创建时间与更新时间，默认为true
        // 不需要createdAt字段
        //'createdAt': 'create_time',
        //
        //// 将updatedAt字段改个名
        // 'updatedAt': 'update_time',
        // 将deletedAt字段改名
        // 同时需要设置paranoid为true（此种模式下，删除数据时不会进行物理删除，而是设置deletedAt为当前时间
        //'deletedAt': 'delete_time',
        //'paranoid': true
    }
)

//provinceModule.sync({force: true});//只要启动服务就会执行 删除元数据库里的表，并重新生成新的表

//建立市的模块
var cityModule=sequelize.define(
    'city',
    {
        'id':{//与数据库表字段对应的模块字段
            'field':'id',//数据库表的字段
            'type': Sequelize.STRING(50), 'primaryKey': true,
            'allowNull': false,
            'unique': true
        },
        'provinceId':{
            'field':'province_id',
            'type': Sequelize.STRING(100),
            'allowNull': true
        },
        'cityName':{
            'field':'city_name',
            'type': Sequelize.STRING(100),
            'allowNull': true
        },
        'createTime':{
            'field':'create_time',
            'type': Sequelize.STRING(20),
            'allowNull': true
        }
    },
    {
        'freezeTableName': true,// 默认false修改表名为复数，true不修改表名，与数据库表名同步
        'tableName': 'city',
        timestamps: false,//时间戳为false是不需要下面的自动生成创建时间与更新时间，默认为true
        // 不需要createdAt字段
        //'createdAt': 'create_time',
        //
        //// 将updatedAt字段改个名
        // 'updatedAt': 'update_time',
        // 将deletedAt字段改名
        // 同时需要设置paranoid为true（此种模式下，删除数据时不会进行物理删除，而是设置deletedAt为当前时间
        //'deletedAt': 'delete_time',
        //'paranoid': true
    }
)
//cityModule.sync({force: true});//只要启动服务就会执行 删除元数据库里的表，并重新生成新的表

//给province和city表建立关系这在多表查询时只需要调用include就可以把他们关联起来
provinceModule.hasMany(cityModule);
cityModule.belongsTo(provinceModule,{foreignKey:'province_id'});
 */
var seqModule=function(){
    this.sequelize=sequelize;
 //   this.provinceModule=provinceModule;
   // this.cityModule=cityModule;
}


module.exports = seqModule;
